package com.gpnu7_412.yanzhi.service;

import com.gpnu7_412.yanzhi.dto.CommentDisplayDto;
import com.gpnu7_412.yanzhi.entity.Comment;
import com.gpnu7_412.yanzhi.entity.CommentHanding;
import com.gpnu7_412.yanzhi.entity.Handing;

import java.util.List;

/**
 * @author ZZH
 */
public interface CommentService {
    /**
     * 添加评论
     * @param comment 评论信息
     * @return boolean
     */
    boolean addComment(Comment comment);

    /**
     * 删除评论
     * @param commentId 待删评论ID
     * @param userId 操作者的用户ID
     * @return boolean
     */
    boolean deleteComment(Integer commentId, Integer userId);

    /**
     * 修改评论
     * @param comment 评论对象
     * @param userId 操作者的用户ID
     * @return boolean
     */
    boolean updateComment(Comment comment, Integer userId);

    /**
     * 点赞评论
     * @param commentId 评论ID
     * @return boolean
     */
    boolean likeComment(Integer commentId);

    /**
     * 举报评论
     * @param commentHanding 评论举报对象
     * @return boolean
     */
    boolean reportComment(CommentHanding commentHanding);

    /**
     * 根据动态ID获取评论列表
     * @param dynamicId 动态ID
     * @return 评论列表
     */
    List<CommentDisplayDto> getByDynamicId(Integer dynamicId);


    Comment getByCommentId(Integer commentId);
}
